package cn.px.dao.dto.upms;

import cn.px.common.bean.BaseDTO;
import cn.px.common.validation.group.AddGroup;
import cn.px.common.validation.group.UpdateGroup;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @Description 字典表DTO
 * @author 品讯科技
 * @date 2024-08
 * @Version Copyright (c) 2019,北京乾元坤和科技有限公司 All rights reserved.
 */
@Data
@Accessors(chain = true)
public class SysDictDTO extends BaseDTO implements Serializable {

    /**
     * 编号
     */
    @NotNull(groups = {UpdateGroup.class}, message = "主键不能为空")
    private String id;
    /**
     * 编码
     */
    private String code;
    /**
     * 数据值
     */
    @NotNull(groups = {AddGroup.class, UpdateGroup.class}, message = "字典值不能为空")
    private String value;

    /**
     * 值类型 1：字符串 2：数字
     */
    @NotNull(groups = {AddGroup.class, UpdateGroup.class}, message = "值类型不能为空")
    private Integer valueType;

    /**
     * 标签名
     */
    @NotNull(groups = {AddGroup.class, UpdateGroup.class}, message = "标签名不能为空")
    private String label;
    /**
     * 类型
     */
    @NotNull(groups = {AddGroup.class, UpdateGroup.class}, message = "类型不能为空")
    private String type;
    /**
     * 类型名
     */
    @NotNull(groups = {AddGroup.class, UpdateGroup.class}, message = "类型名不能为空")
    private String typeName;
    /**
     * 描述
     */
    private String description;
    /**
     * 排序（升序）
     */
    private Integer sort;
    /**
     * 创建时间
     */
    private LocalDateTime createdTime;
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    /**
     * 是否有子
     */
    private String childFlag;
    /**
     * 父ID
     */
    private String parentId;
    /**
     * 删除标记
     */
    private Boolean delFlag;
    /**
     * 添加人
     */
    private String createdUserId;
    /**
     * 修改人
     */
    private String updateUserId;

}
